﻿
using System;
using System.Collections.Generic;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Controls.Primitives;
using System.Windows.Media;

namespace FasterWPF
{
    public interface IComposite
    {
        bool IsGrid();
        Panel AddChild<T>(T source, ContentControl chain, int row, int col, FrameworkElement child) where T : FrameworkElement;
        void RemoveFromChain(Border bdr);
        C GetContainer<C>(Border bdr) where C : FrameworkElement;
        C GetContainerFromChildContentControl<C>(ContentControl chain) where C : FrameworkElement;
        T GetParent<T>(ContentControl parentPanel) where T : FrameworkElement;
        T GetParentFromChild<T>(FrameworkElement childElement) where T : FrameworkElement;
        void AddCompositeToContentControl<T>(T chain, ContentControl contentControl, object settings) where T : FrameworkElement;     
        K Get<K, T>(ContentControl chain, int row, int column)
            where K : UIElement
            where T : FrameworkElement;
        Border GetBorder<T>(FrameworkElement childElement);
        UIElementCollection GetChildren(object container);
    }
}
